package com.candy.control;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;

//简单配置方式，等价与在从xml中配置的servlet的映射路径
//@WebServlet("/loginServlet2")
//完整版配置
@WebServlet(name = "LoginServlet2",urlPatterns = "/loginServlet",
        initParams = { @WebInitParam(name = "username", value = "qst") },asyncSupported = true,
        displayName = "LoginServlet2",description = "注解配置的serlvet")
public class LoginServlet2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("这里是servlet2，已接收到用户的get请求");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //        调用HttpServletRequest接口的方法演示
        System.out.println("请求方法"+req.getMethod());
//        获取请求的资源名
        System.out.println("请求的资源名URL："+req.getRequestURI());
//        获取请求的协议版本号
        System.out.println("请求的协议："+req.getProtocol());
//        对请求携带的查询字符串进行获取，只对get请求有效
        System.out.println("获取查询的字符串"+req.getQueryString());
//        获取Servlet的映射路径
        System.out.println("Servlet的映射路径"+req.getServletPath());
//        获取请求资源的路径
        System.out.println("请求资源的路径："+req.getContextPath());
//        获取所有的请求头域的信息
        Enumeration em= req.getHeaderNames();
        while(em.hasMoreElements()){
            System.out.print("包含的请求头域有："+em.nextElement()+"\t");
        }
        System.out.println();
//        获取请求头域的值，若不存在，会返回-1
        System.out.println("请求头域referer对应的值是："+req.getHeader("referer"));
//获取浏览器的Localed值
        System.out.println("浏览器的Locale："+req.getLocale());
//        解决中文乱码问题
        req.setCharacterEncoding("UTF-8");

//        获取域网络连接信息相关的方法
//getRemoteAddr()	获取请求用户的IP地址
        System.out.println("获取请求用户的IP地址："+req.getRemoteAddr());
//getRemoteHost()	获取请求用户的主机名称
        System.out.println("获取请求用户的主机名称："+req.getRemoteHost());
//getRemotePort()	获取请求用户的主机所使用的网络端口号
        System.out.println("获取请求用户的主机所使用的网络端口号："+req.getRemotePort());
//getLocalAddr()	获取Web服务器的IP地址
        System.out.println("获取Web服务器的IP地址："+req.getLocalAddr());
//getLocalName()	获取Web服务器的主机名
        System.out.println("获取Web服务器的主机名："+req.getLocalName());
//getLocalPort()	获取Web服务器所使用的网络端口号
        System.out.println("获取Web服务器所使用的网络端口号："+req.getLocalPort());
//getServerName()	获取网站的域名
        System.out.println("获取网站的域名："+req.getServerName());
//getServerPort()	获取URL请求的端口号
        System.out.println("获取URL请求的端口号："+req.getServerPort());
//getScheme()	获取请求使用的协议，例如，http或是https
        System.out.println("获取请求使用的协议："+req.getScheme());
//getRequestURL()	获取请求的URL地址
        System.out.println("获取请求的URL地址："+req.getRequestURL());
///////////////////////////////////////接收请求后的处理/////////////////////////////////////
                System.out.println("这里是servlet2，已接收到用户的post请求");
//        接收客户端传递进来的参数
        String username=req.getParameter("username");
        String userpwd=req.getParameter("userpwd");
        System.out.println("用户名："+username);
        System.out.println("密码："+userpwd);
//        判断用户名密码是否正确
        if(username.equals("tom")&&userpwd.equals("123456")){
//            若用户名密码匹配
//            转发
            req.getRequestDispatcher("welcome.jsp").forward(req, resp);
        }else {
//            用户名密码不匹配
//            重定向
            resp.sendRedirect("index.jsp");
        }


    }
}
